home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-11-25 | 32.1 KB | 1,057 lines |
- SMB-Howto
- Autor:David Wood, dwood@plugged.net.au v1.0, 10 August 1996
- Wersja polskiea: Bartosz Maruszewski
- B.Maruszewski@zsmeie.torun.pl
- v1.12, 26 Lipca 1997
-
-
- Jest to dokument z serii HOWTO (Jak To Zrobiµ). Opisuje on jak u┐ywaµ
- Session Message Protocol, zwanego te┐ NetBIOS lub LanManager z Linux-
- em. Dokument ten zosta│ napisany w standardzie ISO-8859-2. Orygina│
- mo┐na znale╝µ pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sun¡
- site/docs/HOWTO.
- ______________________________________________________________________
-
- Table of Contents
-
-
- 1. Wprowadzenie.
-
- 1.1 Dalsze informacje.
-
- 2. Instalacja.
-
- 3. Uruchamianie demon≤w.
-
- 4. Og≤lna konfiguracja. (/etc/smb.conf)
-
- 5. UdostΩpnianie dysku Linux-owego komputerom z Windows.
-
- 6. UdostΩpnianie dysku spod Windows maszynom z Linux-em.
-
- 7. UdostΩpnianie drukarki Linux-owej komputerom z Windows.
-
- 8. UdostΩpnianie drukarki spod Windows komputerom z Linux-em.
-
- 9. Prawa autorskie i Zako±czenie.
-
- 9.1 Prawa autorskie.
- 9.2 PodziΩkowania.
- 9.3 Od t│umacza.
-
-
- ______________________________________________________________________
-
- 1. Wprowadzenie.
-
-
- Jest to dokument z serii HOWTO (Jak To Zrobiµ). Opisuje on jak u┐ywaµ
- z Linuxem Session Message Protocol, zwanego te┐ NetBIOS lub
- LanManager.
-
- Dokument ten jest prowadzony przez Davida Wooda dwood@plugged.net.au.
- Wszelkie dodatki, modyfikacje lub poprawki mog▒ byµ przes│ane do mnie,
- aby je p≤╝niej umie╢ciµ w nastΩpnej wersji.
-
- Protok≤│ SMB u┐ywany jest przez Microsoft Windows 3.11, NT i 95 aby
- wsp≤│dzieliµ zasoby dyskowe i drukarki. Maszyny Unix-owe (w tym tak┐e
- Linux) mog▒ korzystaµ z tych zasob≤w u┐ywaj▒c narzΩdzi stworzonych
- przez Andrew Tridgella.
-
- S▒ cztery rzeczy, kt≤re mo┐na zrobiµ Samb▒:
-
-
- 1. UdostΩpniaµ dysk Linux-owy dla komputer≤w z Windows.
-
-
- 2. UdostΩpniaµ dysk Windows-owy dla komputer≤w z Linux-em.
-
- 3. UdostΩpniaµ drukarkΩ pod Linux-em dla Windows.
-
- 4. UdostΩpniaµ drukarkΩ pod Windows dla Linux-a.
-
- Wszystko to zosta│o opisane w tym dokumencie.
-
- Disclaimer. Procedury i skrypty albo dzia│a│y u autora, albo zosta│y
- opisane jako dzia│aj▒ce przez tych, kt≤rzy je napisali. R≤┐ne
- konfiguracje mog▒ nie dzia│aµ z podanymi tutaj informacjami. Je╢li
- odkryjesz tak▒ sytuacjΩ mo┐esz napisaµ do autora list z sugesti▒ na
- ulepszenie tego dokumentu, ale autor nic nie gwarantuje. A czego siΩ
- spodziewa│e╢ ? W ko±cu autor jest tyklo konsultantem.
-
-
- 1.1. Dalsze informacje.
-
-
- Dokument ten jest pr≤b▒ opisania jak skonfigurowaµ na Linux-ie
- podstawowe serwisy SMB zwi▒zane z plikami i drukarkami. Samba jest
- bardzo z│o┐onym i kompletnym pakietem. Nie ma sensu, ┐eby kopiowaµ
- tutaj wszystko to co jest zawarte w dokumentacji dla tego pakietu.
-
- Dalszych informacji mo┐esz szukaµ w:
-
- ╖ Dokumentacji do Samby, kt≤ra jest czΩ╢ci▒ dystrybucji. Dystrybucja
- jest dostΩpna pod adresem: ftp.icm.edu.pl
-
- ╖ HOWTO dotycz▒cym drukowania (Printing HOWTO)
-
- ╖ oraz w mini-HOWTO Print2Win.
-
-
- 2. Instalacja.
-
-
- Naj╢wie┐sze ╝r≤d│a Samby dostΩpne s▒ pod adresem ftp.icm.edu.pl w
- katalogu /pub/samba.
-
- Je╢li instalowa│e╢ dystrybucjΩ Red Hat mog│e╢ wybraµ instalacjΩ Samby
- jako jedn▒ z opcji. Niekt≤re inne dystrybycje te┐ oferuj▒ binaria
- Samby.
-
- NastΩpuj▒ce demony s▒ wymagane do pracy z Samb▒. Zwykle znajduj▒ siΩ
- one w katalogu /usr/sbin i s▒ uruchamiane w momencie startu systemu
- albo przez demon inetd. Przyk│adowe skrypt znajduj▒ siΩ w sekcji
- ``Uruchamianie demon≤w.''
-
-
- ______________________________________________________________________
- smbd (Demon SMB) i nmbd (ªwiadczy us│ugi nameservera NetBIOS-u)
- ______________________________________________________________________
-
-
-
- Zwykle w systemie instalowane s▒ nastΩpuj▒ce binaraia w katalogu
- /usr/bin:
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- smbclient (Klient dla maszyn Unix-owych), smbprint (skrypt do
- drukowania na drukarce przy│▒czonej do hosta SMB), smbprint.sysv
- (To samo co wcze╢niej, ale dla systemu UNIX SVR4), smbstatus
- (Wy╢wietla bie┐▒ce po│▒czenia SMB na lokalnym ho╢cie), smbrun
- (G│≤wny skrypt do uruchamiania aplikacji na ho╢cie SMB)
- ______________________________________________________________________
-
-
-
- Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print", kt≤ry
- jest po┐ytecznym doko±czeniem skryptu smbprint.
-
- Pakiet Samba jest prosty w instalacji. ªci▒gnij go z podanego
- wcze╢niej miejsca i przeczytaj plik README znajduj▒cy siΩ w
- dystrybucji. Jest jeszcze plik docs/INSTALL.txt, kt≤ry podaje krok po
- kroku co nale┐y zrobiµ, aby zainstalowaµ SambΩ.
-
- PostΩpuj▒c wraz z instalacj▒, umie╢µ demony w /usr/sbin i binaria w
- /usr/bin. Zainstaluj strony do podrΩcznika systemowego "man" w
- /usr/local/man.
-
- Kiedy bΩdziesz instalowa│ pakiet Samba, bΩdziesz musia│ podaµ miejsce,
- gdzie ma siΩ znajdowaµ plik konfiguracyjny smb.conf. Z regu│y jest to
- katalog /etc, ale mo┐esz go umie╢ciµ, gdzie ci siΩ podoba. Dla
- dalszych instrukcji za│o┐ymy, ┐e plik konfiguracyjny umie╢ci│e╢ w
- /etc, plik loguj▒cy to /var/log/samba-log.%m i katalog blokuj▒cy to
- /var/lock/samba.
-
- Zainstaluj plik konfiguracyjny smb.conf. Przejd╝ do katalogu, gdzie
- zosta│a skompilowana Samba. Zajrzyj do katalogu examples/simple i
- przeczytaj plik README. Skopiuj znaleziony tam plik smb.conf do /etc.
- OSTRO»NIE !!! Je╢li masz dystrybucjΩ Linux-a, kt≤ra mia│a SambΩ i
- zainstalowa│e╢ j▒ to pewnie masz ju┐ plik smb.conf w katalogu /etc i
- lepiej zacznij od tego pliku.
-
- Je╢li nie chcesz umieszczaµ pliku konfiguracyjnego w /etc, to umie╢µ
- go tam, gdzie chcesz i zr≤b symboliczne do│▒czenie:
-
-
- ______________________________________________________________________
- ln -s /gdzie/jest/smb.conf /etc/smb.conf
- ______________________________________________________________________
-
-
-
-
- 3. Uruchamianie demon≤w.
-
-
- Dwoma demonami SMB s▒: /usr/sbin/smbd i /usr/sbin/nmbd. Mo┐esz je
- uruchomiµ przez demona inetd lub jako osobne procesy. Je╢li
- konfigurujesz na sta│e serwer plikowy, to powinny one byµ uruchamiane
- przez inetd po to, ┐eby je ponownie uruchomiµ je╢li z jakiego╢ powodu
- przestan▒ dzia│aµ. Je╢li chcesz korzystaµ z Samby tylko czasami, to
- mo┐esz je uruchomiµ z kt≤rego╢ ze skrypt≤w startowych w katalogu
- /etc/rc.d albo po prostu od rΩki wtedy kiedy je potrzebujesz.
-
- Aby uruchomiµ demony przez inetd umie╢µ nastΩpuj▒ce linie w pliku
- /etc/inetd.conf:
-
-
-
-
-
-
- ______________________________________________________________________
- Serwis NetBIOS dla Samby
- # netbios-ssn
- stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait
- root /usr/sbin/nmbd nmbd
- ______________________________________________________________________
-
-
-
- NastΩpnie wy╢lij sygna│ HUP do procesu nr 1:
-
- ______________________________________________________________________
- kill -HUP 1
- ______________________________________________________________________
-
-
-
- Dla u┐ytkownik≤w dystrybucji Red Hat. Aby uruchomiµ te demony ze
- skrypt≤w startowych, umie╢µ nastΩpuj▒cy skrypt w katalogu
- /etc/rc.d/init.d/smb i do│▒cz je symbolicznie do plik≤w podanych w
- komentarzu:
-
-
- ______________________________________________________________________
- #!bin/sh
-
- #
- # /etc/rc.d/init.d/smb - startuje i zatrzymuje serwis SMB
- #
- # NastΩpuj▒ce pliki powinny byµ symbolicznymi do│▒czeniami do
- # tego pliku:
- # /etc/rc.d/rc1.d/K35smb (Zatrzymuje serwis SMB podczas
- # zamkniΩcia systemu.
- # /etc/rc.d/rc3.d/S91smb (Startuje serwis SMB w trybie
- # wielou┐ytkownikowym
- # /etc/rc.d/rc6.d/K35smb (zatrzymuje serwis SMB podczas resetu)
- #
-
- # Biblioteka funkcji
- etc/rc.d/init.d/functions
-
- # Konfiguracja sieci
- etc/sysconfig/network
-
- # Sprawd╝ czy jeste╢my w sieci
- [ ${NETWORKING} = "no" ] && exit 0
-
- # Zobacz jak zostali╢my wywo│ani
- case "$1" in
- start) echo -n "Starting SMB services: "
- daemon smbd -D
- daemon nmbd -D
- echo touch /var/lock/subsys/smb
- ;;
- stop) echo -n "Shutting down SMB services: "
- killproc smbd
- killproc nmbd
- rm -f /var/lock/subsys/smb echo ""
- ;;
- *) echo "Usage: smb {start|stop}" exit 1
- esac
- ______________________________________________________________________
-
-
-
-
- Od t│umacza: Je╢li u┐ywasz dystrybucji Slackware. Umie╢µ poni┐szy
- fragment w skrypcie startowym /etc/rc.d/rc.local:
-
-
- ______________________________________________________________________
-
- # czy jeste╢my w sieci
- [ ${NETWORKING} = "no" ] && exit 0
-
- # Uruchmon demony Samby
- /usr/sbin/smbd -D
- /usr/sbin/nmbd -D
- ______________________________________________________________________
-
-
-
-
- 4. Og≤lna konfiguracja. (/etc/smb.conf)
-
-
- Konfiguracja Samby na Unix-ie jest kontrolowana jednym plikiem:
- /etc/smb.conf. W pliku tym umieszczasz zasoby jakie chcesz udostΩpniµ
- dla ╢wiata i jakie restrykcje chcesz wprowadziµ.
-
- Poniewa┐ ta sekcja opisuje udostΩpnianie dysk≤w i drukarek Linux-owych
- Windowsom, plik smb.conf bΩdzie najprostszym z mo┐liwych.
-
- Nie martw siΩ o szczeg≤│y. P≤╝niejsze sekcje wprowadz▒ og≤lny koncept.
-
- Ka┐da sekcja pliku zaczyna siΩ od nazwy jak np.: [global], [homes],
- [printers] itp.
-
- Sekcja [global] definiuje kilka og≤lnych zmiennych, kt≤re bΩd▒ siΩ
- odnosiµ do wszystkich udostΩpnianych zasob≤w.
-
- Sekcja [homes] pozwala u┐ytkownikom na dostΩp do ich (i tyklo ich)
- katalog≤w domowych na lokalnej maszynie Linux-owej. Je╢li jaki╢
- u┐ytkownik Windows bΩdzie chcia│ skorzystaµ z udostΩpnianych zasob≤w,
- to zostanie pod│▒czony do swojego katalogu domowego. Zauwa┐, ┐e aby
- to zrobiµ u┐ytkownik musi mieµ swoje konto na maszynie Linux-owej.
-
- Poni┐szy przyk│adowy plik smb.conf pozwala u┐ytkownikom na dostΩp do
- swoich katalog≤w domowych i na zapis do katalogu tymczasowego. Aby
- u┐ytkownik Windows zobaczy│ udostΩpniane zasoby, Linux musi byµ w tej
- samej sieci lokalnej. U┐ytkownik Windows po prostu do│▒cza dysk
- sieciowy z Mened┐era Plik≤w lub Eksploratora Windows.
-
- W nastΩpnych sekcjach bΩd▒ dodawane kolejne linie do tego pliku, aby
- umo┐liwiµ dostΩp do wiΩkszej ilo╢ci zasob≤w.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- etc/smb.conf
- ;
- ; Po wprowadzeniu zmian do tego pliku zrestartuj demony Samby
- ; kill -9 `pidof smbd`; kill -9 `pidof nmbd`
- ; /usr/sbin/smbd; /usr/sbin/nmbd
- [global] Umie╢µ to w pliku je╢li chcesz konto anonimowe guest account = nobody
- log file = /var/log/samba-log.%m lock directory = /var/lock/samba share
- modes = yes
-
- [homes] comment = Katalogi Domowe browseable = no read only = no create
- mode = 0750
-
- [tmp] comment = Miejsce na pliki tymczasowe path = /tmp read only = no
- public = yes
- ______________________________________________________________________
-
-
-
-
- 5. UdostΩpnianie dysku Linux-owego komputerom z Windows.
-
-
- Jak widaµ na powy┐szym przyk│adzie udostΩpnianie dysk≤w Linux-owych
- u┐ytkownikom Windows jest proste. DostΩp do zasob≤w udostΩpnianych
- poprzez SambΩ mo┐na w bardzo du┐ym stopniu kontrolowaµ.
-
- Aby udostΩpniµ wszystkim jakie╢ zasoby, dodaj poni┐sze linie do
- smb.conf:
-
-
- ______________________________________________________________________
- [public]
- comment = Public Stuff path = /home/public public = yes writable = yes
- printable = yes
- ______________________________________________________________________
-
-
-
- Aby umo┐liwiµ zapis do tego katalogu tylko dla cz│onk≤w grupy staff,
- zmodyfikuj te linie w nastΩpuj▒cy spos≤b:
-
-
- ______________________________________________________________________
- [public]
- comment = Public Stuff path = /home/public public = yes writable = yes
- printable = no write list = @staff
- ______________________________________________________________________
-
-
-
- WiΩcej informacji na temat r≤┐nych sposob≤w udostΩpniania zasob≤w
- znajdziesz w dokumentacji do Samby.
-
-
- 6. UdostΩpnianie dysku spod Windows maszynom z Linux-em.
-
- Wraz z dystrybucj▒ Samby otrzymujemy klienta dla Unix-≤w. Jego
- interfejs polece± jest podobny do ftp. Mo┐esz go u┐ywaµ, aby przenosiµ
- pliki miΩdzy Windowsowym "serwerem" a klientem Linux-owym.
-
- Aby zobaczyµ jakie zasoby sa udostΩpnione na danym ho╢cie napisz:
-
-
-
-
- ______________________________________________________________________
- /usr/sbin/smbclient -L host
- ______________________________________________________________________
-
-
-
- gdzie host jest nazw▒ maszyny, kt≤rej zasoby chcesz zobaczyµ.
- Polecenie to zwr≤ci listΩ nazw serwis≤w - to znaczy nazw dysk≤w lub
- drukarek, kt≤re mo┐e udostΩpniµ. Serwer Samby bΩdzie ciΩ pyta│ o
- has│o, o ile nie ma skonfigurowanego bezpiecznego dostΩpu.
-
- Np.
-
-
- ______________________________________________________________________
- smbclient -L zimmermann
- ______________________________________________________________________
-
-
-
- Polecenie to powinno wy╢wietliµ co╢ na kszta│t:
-
-
- ______________________________________________________________________
- Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0
- Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
-
- Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
-
- Sharename Type Comment
- --------- ---- -------
- ADMIN$ Disk Remote Admin public Disk Public C$ Disk
- Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$
- Disk Printer Drivers
-
-
- This machine has a browse list:
-
- Server Comment
- --------- -------
- HOPPER Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE
- Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN
- ______________________________________________________________________
-
-
-
- Browse list pokazuje inne serwery SMB udostΩpniaj▒ce zasoby w sieci.
-
- Aby u┐yµ klienta napisz:
-
- ______________________________________________________________________
- /usr/sbin/smbclient serwis <has│o>
- ______________________________________________________________________
-
-
-
- gdzie serwis jest nazw▒ maszyny i zasobu. Na przyk│ad je╢li pr≤bujesz
- dostaµ siΩ do katalogu, kt≤ry jest udostΩpniany jako public na
- maszynie o nazwie zimmermann, serwisem by│oby: \\zimmerman\public.
- Chocia┐ z powodu pow│oki w Linux-ie bΩdziesz musia│ oznaczyµ znaki \
- specjalnie i polecenie ostatecznie wygl▒da tak:
-
- ______________________________________________________________________
- usr/sbin/smbclient \\\\zimmerman\\public has│o
- ______________________________________________________________________
-
- gdzie has│o jest │a±cuchem znak≤w bΩd▒cym twoim has│em.
-
- Pojawi siΩ wtedy znak zachΩty klienta Samby:
-
-
- ______________________________________________________________________
- Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0
- Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
- 3.51] smb: \>
- ______________________________________________________________________
-
-
-
- Napisz 'h', aby uzyskaµ pomoc:
-
-
- ______________________________________________________________________
- smb: \> h ls dir lcd cd pwd get mget put mput rename more mask del rm
- mkdir md rmdir rd prompt recurse translate lowercase print printmode
- queue cancel stat quit q exit newer archive tar blocksize tarmode
- setmode help ? ! smb: \>
- ______________________________________________________________________
-
-
-
- Je╢li umiesz u┐ywaµ ftp, to nie powiniene╢ potrzebowaµ czytaµ
- podrΩcznika systemowego na temat smbclient.
-
-
- 7. UdostΩpnianie drukarki Linux-owej komputerom z Windows.
-
-
- Aby udostepniµ drukarkΩ Linux-ow▒ Windowsom musisz siΩ upewniµ, ┐e
- drukarka dzia│a dobrze pod Linux-em. Je╢li mo┐esz drukowaµ spod Linux-
- a to ustawienie serwera SMB dla drukarki jest bardzo proste.
-
- Przeczytaj Priniting-HOWTO na temat ustawienia drukarki pod Linux-em.
-
- Poniewa┐ autor u┐ywa drukarki po│▒czonej z Windows NT, sekcja ta nie
- powinna byµ brana za definicjΩ, ale bardziej jako sugestia. Je╢li
- ktokolwiek ma ochotΩ siΩ podzieliµ szczeg≤│ami na temat innych
- konfiguracji proszΩ o kontakt, aby ta sekcja mog│a zostaµ sko±czona:
- dwood@plugged.net.au.
-
- Dodaj konfiguracjΩ na temat drukowania do smb.conf:
-
-
- ______________________________________________________________________
- [global]
- printing = bsd printcap name = /etc/printcap load printers = yes
- log file = /var/log/samba-log.%m lock directory = /var/lock/samba
-
- [printers] comment = Wszystkie drukarki security = server path = /var/spool/lpd/lp
- browseable = no printable = yes public = yes writable = no
- create mode = 0700
-
- [ljet] security = server path = /var/spool/lpd/lp printer name = lp
- writable = yes public = yes printable = yes
- print command = lpr -r -h -P %p %s
- ______________________________________________________________________
-
-
-
- Upewnij siΩ, ┐e ╢cie┐ka do drukarki (w tym wypadku w sekcji ]ljet[)
- jest taka sama jak katalog zada± w etc/printcap.
-
- UWAGA: S▒ pewne problemy przy udostΩpnianiu drukarki Unixowej przez
- SambΩ komputerom z Windows NT. Jeden problem to taki, ┐eby NT widzia│o
- poprawnie drukarkΩ. Aby go zlikwidowaµ przeczytaj plik docs/WinNT.txt,
- kt≤ry jest dostarczany wraz z dystrybucj▒. Drugi problem to has│a.
- Przeczytaj ten sam plik, aby rozwi▒zaµ ten problem.
-
-
- 8. UdostΩpnianie drukarki spod Windows komputerom z Linux-em.
-
-
- Aby udostΩpniµ drukarkΩ spod Windows-≤w musisz zrobiµ nastΩpuj▒ce
- rzeczy:
-
- a) Musisz mieµ poprawne pola w /etc/printcap i musz▒ one odpowiadaµ
- lokalnej strukturze katalog≤w (katalog dla drukarki itp.)
-
- b) Musisz mieµ skrypt /usr/bin/smbprint. Skrypt ten znajduje siΩ w
- ╝r≤d│ach Samby, ale nie w ka┐dym pakiecie binarnym. Poni┐ej znajduje
- siΩ trochΩ zmodyfikowana wersja tego skryptu.
-
- c) Je╢li chcesz zamieniaµ pliki ASCII na PostScript, musisz mieµ
- nenscript albo jego ekwiwalent. nenscript jest konwerterem PostScript-
- owym i jest z regu│y instalowany w /usr/bin.
-
- d) Mo┐esz u│atwiµ drukowanie poprzez SambΩ pisz▒c skrypt. Poni┐ej
- podany jest prosty skrypt w Perl-u obs│uguj▒cy pliki ASCII, PostScript
- i stworzony PostScript.
-
- Poni┐sze pola w /etc/printcap s▒ dla drukarki HP 5MP do│▒czonej do
- komputera z Windows NT.
-
-
- ______________________________________________________________________
- cm - komentarz; lp - urz▒dzenie, na kt≤re ma byµ wys│any wydruk;
- sd - katalog zada± dla drukarki (na lokalnym komputerze); af -
- katalog accounting; mx - maksymalny rozmiar pliku (0 - bez
- ograniczenia); if - nazwa filtru wej╢ciowego (skryptu).
- ______________________________________________________________________
-
-
-
- WiΩcej informacji znajdziesz w Printing-HOWTO lub w podrΩczniku
- systemowym dla "printcap".
-
-
- ______________________________________________________________________
- etc/printcap
- #
- # //zimmerman/oreilly przez smbprint
- #
- lp:\ cm=HP 5MP Postscript OReilly na zimmerman:\ lp=/dev/lp1:\
- :sd=/var/spool/lpd/lp:\ af=/var/spool/lpd/lp/acct:\ mx#0:\
- :if=/usr/bin/smbprint:
- ______________________________________________________________________
-
-
-
- Upewnij siΩ, ┐e katalogi zada± i accounting istniej▒ i s▒ zapisywalne
- oraz ┐e if ma poprawn▒ ╢cie┐kΩ do scryptu smbprint (patrz poni┐ej) i
- ┐e lp wskazuje poprawne urz▒dzenie (plik specjalny w katalogu /dev)
-
- NastΩpnym krokiem jest skrypt smbprint. Zwykle znajduje siΩ on w
- /usr/bin i jest przypisywany Andrew Tridgellowi - osobie, kt≤ra
- stworzy│a SambΩ o ile wiem. Przychodzi on wraz z dystrybucj▒ ╝r≤de│
- Samby, ale nie ma go w dystrybucji binari≤w, wiΩc go tutaj stworzy│em.
-
- Mo┐esz przejrzeµ go dok│adniej. Przerobi│em go trochΩ, poniewa┐
- przer≤bki wydawa│y mi siΩ u┐yteczne.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- #!/bin/sh
- # Skrypt ten jest filtrem wej╢ciowym do drukowania na drukarce
- # do│▒czonej do Unix-a. U┐ywa programu smbclient do drukowania
- # pliku. Na przyk│ad tw≤j printcap m≤g│by wygl▒daµ nastepuj▒co:
- #
- #
- # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
- #
- #
- # Stworzy│by on drukarkΩ o nazwie smb, kt≤ra drukowa│aby poprzez
- # ten skrypt. Musia│by╢ stworzyµ katalog zada± /usr/spool/smb z
- # odpowiednimi dla twojego systemu prawami dostΩpu i w│a╢cicielem.
- #
- # Ustaw nastΩpuj▒ce rzeczy na serwer i serwis przez, kt≤ry chcesz
- # drukowaµ. W tym przyk│adzie mam PC-ta z WfWg o nazwie "lapland",
- # kt≤ry ma drukarkΩ o nazwie printer bez has│a.
- #
- #
- # W dalszej czΩ╢ci skrypt zosta│ przerobiony przez hamilton@ecnz.co.nz
- # (Michael Hamilton, tak aby serwer, serwis i has│o mog│y byµ
- # przeczytane z pliku /usr/var/spool/lpd/PRINTNAME/.config
- #
- # Aby to dzia│a│o /etc/printcap musi mieµ pole af:
- #
- # cdcolour:\ cm=CD IBM Colorjet on 6th:\ sd=/var/spool/lpd/cdcolour:\
- # :af=/var/spool/lpd/cdcolour/acct:\ if=/usr/local/etc/smbprint:\
- # :mx=0:\ lp=/dev/null:
- #
- # Plik /usr/var/spool/lpd/PRINTNAME/.config powinien zawieraµ:
- # server=PC_SERVER service=PR_SHARENAME password="password"
- #
- # Np. server=PAULS_PC service=CJET_371 password=""
-
- #
- # Plik, do kt≤rego maj▒ byc zapisywane wiadomo╢ci ze ╢ledzenia;
- # mo┐esz zmieniµ na /dev/null je╢li chcesz:
- #
- logfile=/tmp/smb-print.log logfile=/dev/null
-
-
- #
- # Ostatnim parametrem do filtra jest nazwa pliku accounting.
- #
- spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config
-
- # Powinien czytaµ te zmienne z pliku konfiguracyjnego: serwer
- # serwis has│o u┐ytkownik
- eval `cat $config_file`
-
- # TrcohΩ pomocy, zmie± >> na > je╢li chcesz zachowaµ trochΩ
- # miejsca na dysku.
- #
- echo "server $server, service $service" >> $logfile
-
- (UWAGA Mo┐esz dodaµ liniΩ `echo translate' jesli chcesz
- # automatycznego t│umaczenia CR/LF podczas drukowania.
- echo translate echo "print -" cat
- ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user
- -N -P >>
- $logfile
- ______________________________________________________________________
-
-
-
-
- WiΩkszo╢µ dystrybucji Linux-owych posiada nenscript do zamiany
- dokument≤w ASCII na PostScript. NastΩpuj▒cy skrypt w Perl-u u│atwia
- ┐ycie stwarzaj▒c prosty interfejs dla drukowania w Linux-ie przez
- smbprint.
-
-
- ______________________________________________________________________
- Stosowanie: print [-a|c|p] <nazwa_pliku>
- -a drukuje <nazwa_pliku> jako ASCII; c drukuje <nazwa_pliku>
- sformatowane jako ╝r≤d│o; -code p drukuje <nazwa_pliku> jako
- PostScript.
- Je╢li nie ma ┐adnej opcji, print pr≤buje odgadn▒µ typ pliku i
- odpowiednio go wydrukowaµ.
- ______________________________________________________________________
-
-
-
- U┐ycie smbprint do drukowania plik≤w ASCII powoduje obcinanie d│ugich
- linii. Ten skrypt dzieli d│ugie linie w miejscu spacji (zamiast w
- ╢rodku s│owa) je╢li jest to mo┐liwe.
-
- Formatowanie ╝r≤d│a odbywa sie przy pomocy programu nenscript. Bierze
- on plik ASCII i formatuje go w dwie kolumny z dodatkowym nag│≤wkiem
- (data, nazwa pliku, itp.) Zlicza tak┐e ilo╢µ linii. Wzoruj▒c siΩ na
- tym przyk│adzie mo┐esz zrobiµ inne typy formatowania.
-
- Dokumenty PostScript-owe s▒ ju┐ sformatowane wiΩc przechodz▒
- bezpo╢rednio do drukarki.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ______________________________________________________________________
- usr/bin/perl
-
- # Skrypt: print Autorzy: Brad Marshall, David Wood
- # Plugged In Communications Date: 960808
- #
- # Skrypt do drukowania na drukarce oreilly, kt≤ra jest do│▒czona do
- # komputera zimmerman. Opis dzia│ania: Jako argumenty przyjmuje pliki
- # r≤┐nych typ≤w i wysy│a je odpowiednio do skryptu drukujacego Samby
- #
- # Obecnie obs│ugiwane typy plik≤w:
- #
- # ASCII - Upewnij siΩ, ┐e linie d│u┐sze ni┐ $line_length zosta│y
- # podzielone w miejscu spacji.
- # PostScript - Nie robi nic.
- # Code - Formatuje na PostScript u┐ywaj▒c "nenscript", aby wszystko
- # by│o odpowiednio wy╢wietlone (u│o┐enie, czcionki, itd.)
- #
- #
- # Ustaw maksymaln▒ ilo╢µ znak≤w w linii dla plik≤w ASCII. line_length
- $= 76;
-
- # Ustaw ╢cie┐kΩ i nazwΩ skryptu drukuj▒cego Samby print_prog =
- $"/usr/bin/smbprint";
-
- # Ustaw ╢cie┐kΩ i nazwΩ "nenscript-u" (zamiana ASCII-->PostScript)
- $nenscript = "/usr/bin/nenscript";
-
- unless ( -f $print_prog ) { die "Can't find $print_prog!";
- }
- unless ( -f $nenscript ) { die "Can't find $nenscript!";
- }
-
- &ParseCmdLine(@ARGV);
-
- # DBG print "filetype is $filetype\n";
-
- if ($filetype eq "ASCII") { ero;wrap($line_length); elsif ($filetype eq
- &"code") {
- } ero;codeformat; elsif ($filetype eq "ps") {
- &createarray; else {
- } print "Sorry..no known
- &file type.\n"; exit
- } 0;
- }
- # Wy╢lij tablcΩ do smbprint open(PRINTER, "|$print_prog") || die "Can't
- open $print_prog: $!\n"; foreach
- $line (@newlines) {
- print PRINTER $line;
- }
- # Wy╢lij dodatkowy znak LF je╢li plik ma niekompletn▒ ostatni▒ liniΩ. print
- PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0;
-
- # --------------------------------------------------- #
- # Wszystko poni┐ej jest procedur▒ #
- # --------------------------------------------------- #
-
- sub ParseCmdLine { Interpretuje wiersz polece±, szukaj▒c jakiego typu jest
- # plik
-
- # Gets $arg and $file to be the arguments (if they exists) and the
- # filename
- if ($#_ < 0) { ero;usage;
- }
- # DBG foreach $element (@_) { print "*$element* \n";
- # }
- $arg = shift(@_); if ($arg =~ /\-./) { cmd = $arg; DBG print "\$cmd
- found.\n";
-
- $file = shift(@_); else { file = $arg;
- }
-
- # Definiowanie typu pliku dop≤ki ($cmd) { Nie mamy argument≤w
-
- if ($file =~ /\.ps$/) { filetype = "ps"; elsif ($file =~
- $/\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/)
- ${ filetype = "code"; else { filetype = "ASCII";
- }
-
- # Przer≤b $file odpowiednio do jego typu i zwr≤µ $filetype
- } else { Mamy typ pliku w $arg if ($cmd =~ /^-p$/) {
- filetype = "ps"; elsif ($cmd =~
- $/^-c$/) { filetype
- } = "code"; elsif ($cmd =~
- $/^-a$/) {
- } filetype = "ASCII"
- }
- }
- }
-
- sub usage { print " Stosowanie: print [-a|c|p] <plik>
- -a drukuje <plik> jako ASCII c drukuje <plik> sformatowany jako
- ╝r≤d│o
- -code p drukuje <plik> jako PostScript
- Je╢li nie ma ┐adnej opcji, print pr≤buje odgadn▒µ typ pliku i
- odpowiednio go wydrukowaµ.\n
- ";
- exit(0);
- }
-
- sub wrap { Stw≤rz tablicΩ linii w pliku, gdzie ka┐da linia jest kr≤tsza od
- # podanej ilo╢ci znak≤w i jest podzielona tylko w miejscach spacji
-
- # Pobierz ilo╢µ znak≤w jaka mo┐e byµ w linii. limit =
- $pop(@_);
-
- # DBG print "Entering subroutine wrap\n"; print "The line length
- #limit is $limit\n";
-
- # Wczytaj plik, sformatuj i umie╢µ w tablicy. open(FILE,
- "<$file") || die "Can't open $file: $!\n"; while(<FILE>) {
- $line = $_;
-
- # DBG print "The line is:\n$line\n";
-
- # Podziel liniΩ je╢li jest d│u┐sza ni┐ podana ilo╢µ znak≤w. while (
- length($line) > $limit ) {
-
- # DBG print "Wrapping...";
-
- # Pobierz pierwsze $limit+1 znak≤w. part =
- $substr($line,0,$limit +1);
-
- # DBG print "The partial line is:\n$part\n";
-
- # Sprawd╝ czy ostatni znak jest spacj▒.
- $last_char = substr($part,-1, 1);
- if ( " " eq $last_char ) { Je╢li tak, wydrukuj resztΩ.
-
- # DBG print "The last character was a space\n";
-
- substr($line,0,$limit + 1) = "";
- substr($part,-1,1) = "";
- push(@newlines,"$part\n");
- } else { Je╢li nie, znajd╝ ostatni▒ spacjΩ w
- # pod-linii i drukuj do niej
-
- # DBG print "The last character was not a
- #space\n";
-
- # Usu± znaki dalsze ni┐ $limit
- substr($part,-1,1) = ""; Odwr≤µ liniΩ
- # aby u│atwiµ odnajdywanie ostatniej spacji
- $revpart = reverse($part);
- $index = index($revpart," ");
- if ( $index > 0 ) {
- substr($line,0,$limit-$index) = "";
- push(@newlines,substr($part,0,$limit-$index)
- . "\n"); else { Nie by│o spacji w linii
- } wiΩc
- # wydrukuj do $limit.
- substr($line,0,$limit) = "";
- push(@newlines,substr($part,0,$limit)
- . "\n");
- }
- }
- }
- push(@newlines,$line);
- }
- close(FILE);
- }
-
- sub codeformat { Wywo│aj procedurΩ wrap i przefiltruj przez nenscript
- &wrap($line_length);
-
- # Przepu╢µ wynik przez nenscript, aby utworzyµ plik PostScript,
- # kt≤ry pasuje do jakiego╢ przyzwoitego formatu ╝r≤de│ do drukowania
- # (u│o┐enie, czcionki Courier, ilo╢µ linii). Najpierw wydrukuj to do
- # pliku tymczasowego.
- $tmpfile = "/tmp/nenscript$$";
- open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") || die "Can't
- open nenscript: $!\n"; foreach $line (@newlines)
- {
- print FILE $line;
- }
- close(FILE);
-
- # Wczytaj plik tymczasowy spowrotem do tablicy, tak aby m≤g│ byµ
- # wys│any do skryptu print Samby.
- @newlines = ("");
- open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
- while(<FILE>) {
- push(@newlines,$_);
- }
- close(FILE); system("rm $tmpfile");
- }
-
- sub createarray { Stw≤rz tablicΩ dla PostScript-u open(FILE, "<$file") ||
- # die "Can't
- open $file: $!\n"; while(<FILE>) {
- push(@newlines,$_);
- }
- close(FILE);
- }
- ______________________________________________________________________
-
-
-
- 9. Prawa autorskie i Zako±czenie.
-
-
-
- 9.1. Prawa autorskie.
-
-
- Dokument ten jest chroniony prawami autorskimi Davida Wooda 1996.
- Mo┐e on byµ reprodukowany w ka┐dej formie i dystrybuowany bez
- ogranicze± tak d│ugo jak nie zmieni siΩ jego zawarto╢µ i zawarte jest
- w nim to stwierdzenie.
-
-
- 9.2. PodziΩkowania.
-
-
- Je╢li tylko przy╢lesz mi jakie╢ sugestie, umieszczΩ ciΩ tutaj w
- nastΩpnej wersji.
-
-
- 9.3. Od t│umacza.
-
-
- T│umaczenie to jest chronione prawami autorskimi (C) Bartosza
- Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na
- prawach takich samych jak dokument oryginalny.
-
- Je╢li znalaz│e╢ jakie╢ ra┐▒ce b│Ωdy ortograficzne, gramatyczne,
- sk│adniowe, techniczne to pisz do mnie:
-
- B.Maruszewski@zsmeie.torun.pl
-
- Oficjaln▒ stron▒ t│umacze± HOWTO jest http://www.jtz.org.pl/
-
- Aktualne wersje przet│umaczonych dokument≤w znajduj▒ siΩ na tej┐e
- stronie. DostΩpne s▒ tak┐e poprzez anonimowe ftp pod adresem
- ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.
-
- Przet│umaczone przeze mnie dokumenty znajduj▒ siΩ tak┐e na mojej
- stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S▒
- tam te┐ odwo│ania do Polskiej Strony T│umaczeniowej.
-
- Kontakt z nasz▒ grup▒, grup▒ t│umaczy mo┐esz uzyskaµ poprzez listΩ
- dyskusyjn▒ jtz@ippt.gov.pl. Je╢li chcesz sie na ni▒ zapisaµ, to wy╢lij
- list o tre╢ci subscribe jtz ImiΩ Nazwisko na adres
- listproc@ippt.gov.pl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-